﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class Parametros_Impuestos : GenericPage
{
    List<Impuestos> listaImpuestos = new List<Impuestos>();
    Impuestos oImpuesto = new Impuestos();

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!IsPostBack)
            {
                lblAccion.Text = "Actualiza Nombre y Tasas";
                MuestraDatos();
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnGuardar_Click
    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        try
        {
            List<Impuestos> listaImpVentas = (List<Impuestos>)Session["listaImpVentas"];
            GuardaVentas(listaImpVentas);
            List<Impuestos> listaImpCompras = (List<Impuestos>)Session["listaImpCompras"];
            GuardaCompras(listaImpCompras);
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnCancelar_Click
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Seguridad/Default.aspx", false);
    }
    #endregion

    #endregion

    #region Metodos

    #region MuestraDatos
    protected void MuestraDatos()
    {
        try
        {
            BMImpuestos bmImpuestos = new BMImpuestos(Connection);

            oImpuesto.Tipo = "A";

            listaImpuestos = bmImpuestos.BMImpuestosGetAll(oImpuesto);
            Session["listaImpVentas"] = listaImpuestos;

            MuestraVentas(listaImpuestos);

            oImpuesto.Tipo = "C";

            listaImpuestos = bmImpuestos.BMImpuestosGetAll(oImpuesto);
            Session["listaImpCompras"] = listaImpuestos;

            MuestraCompras(listaImpuestos);

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region MuestraVentas
    protected void MuestraVentas(List<Impuestos> listaImpVentas)
    {
        try
        {
            txtTNV1.Text = listaImpVentas[0].Nombre;
            txtTV1.Text = (listaImpVentas[0].Tasa * 100).ToString("#0.00");
            txtTNV2.Text = listaImpVentas[1].Nombre;
            txtTV2.Text = (listaImpVentas[1].Tasa * 100).ToString("#0.00");
            txtTNV3.Text = listaImpVentas[2].Nombre;
            txtTV3.Text = (listaImpVentas[2].Tasa * 100).ToString("#0.00");
            txtTNV4.Text = listaImpVentas[3].Nombre;
            txtTV4.Text = (listaImpVentas[3].Tasa * 100).ToString("#0.00");
            txtTNV5.Text = listaImpVentas[4].Nombre;
            txtTV5.Text = (listaImpVentas[4].Tasa * 100).ToString("#0.00");
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region MuestraCompras
    protected void MuestraCompras(List<Impuestos> listaImpCompras)
    {
        try
        {
            txtTNC1.Text = listaImpCompras[0].Nombre;
            txtTC1.Text = (listaImpCompras[0].Tasa * 100).ToString("#0.00");
            txtTNC2.Text = listaImpCompras[1].Nombre;
            txtTC2.Text = (listaImpCompras[1].Tasa * 100).ToString("#0.00");
            txtTNC3.Text = listaImpCompras[2].Nombre;
            txtTC3.Text = (listaImpCompras[2].Tasa * 100).ToString("#0.00");
            txtTNC4.Text = listaImpCompras[3].Nombre;
            txtTC4.Text = (listaImpCompras[3].Tasa * 100).ToString("#0.00");
            txtTNC5.Text = listaImpCompras[4].Nombre;
            txtTC5.Text = (listaImpCompras[4].Tasa * 100).ToString("#0.00");
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region GuardaVentas
    protected void GuardaVentas(List<Impuestos> listaImpVentas)
    {
        try
        {
            listaImpVentas[0].Nombre = txtTNV1.Text;
            listaImpVentas[0].Tasa = Convert.ToDecimal(txtTV1.Text.Trim()) / 100;
            listaImpVentas[1].Nombre = txtTNV2.Text;
            listaImpVentas[1].Tasa = Convert.ToDecimal(txtTV2.Text.Trim()) / 100;
            listaImpVentas[2].Nombre = txtTNV3.Text;
            listaImpVentas[2].Tasa = Convert.ToDecimal(txtTV3.Text.Trim()) / 100;
            listaImpVentas[3].Nombre = txtTNV4.Text;
            listaImpVentas[3].Tasa = Convert.ToDecimal(txtTV4.Text.Trim()) / 100;
            listaImpVentas[4].Nombre = txtTNV5.Text;
            listaImpVentas[4].Tasa = Convert.ToDecimal(txtTV5.Text.Trim()) / 100;
            BMImpuestos bmImpuestos = new BMImpuestos(Connection);
            foreach (Impuestos impuesto in listaImpVentas)
            {
                bmImpuestos.BMImpuestosUpdate(impuesto);
            }

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region GuardaCompras
    protected void GuardaCompras(List<Impuestos> listaImpCompras)
    {
        try
        {
            listaImpCompras[0].Nombre = txtTNC1.Text;
            listaImpCompras[0].Tasa = Convert.ToDecimal(txtTC1.Text.Trim()) / 100;
            listaImpCompras[1].Nombre = txtTNC2.Text;
            listaImpCompras[1].Tasa = Convert.ToDecimal(txtTC2.Text.Trim()) / 100;
            listaImpCompras[2].Nombre = txtTNC3.Text;
            listaImpCompras[2].Tasa = Convert.ToDecimal(txtTC3.Text.Trim()) / 100;
            listaImpCompras[3].Nombre = txtTNC4.Text;
            listaImpCompras[3].Tasa = Convert.ToDecimal(txtTC4.Text.Trim()) / 100;
            listaImpCompras[4].Nombre = txtTNC5.Text;
            listaImpCompras[4].Tasa = Convert.ToDecimal(txtTC5.Text.Trim()) / 100;
            BMImpuestos bmImpuestos = new BMImpuestos(Connection);
            foreach (Impuestos impuesto in listaImpCompras)
            {
                bmImpuestos.BMImpuestosUpdate(impuesto);
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion
}
